/******************************************************************************
 *
 *	Fichier:			Fichiers.h
 *
 *	Fonction:		Gestion des fichiers, et différentes opérations les concernant
 *
 *	Auteur:		   Tristan Stérin
 *
 *	Copyright:		Copyright (c) 2010 <whomever>
 *						Tous droits réservés.
 *
 *	Source:			Original.
 *
 *	Notes:			
 *
 *	
 ******************************************************************************/ 

#ifndef DEF_FICHIERS_HEADER
#define DEF_FICHIERS_HEADER

#include "common.h"

/***********************************
Servira à définir le chemin
d'un fichier en fonction de son type
***********************************/

namespace PATH
{
	const int LOG = 1;
	const int TILE = 2;
	const int MAP = 3;
	
	const int SON = 4;
	const int MUSIQUE = 5;
}

/***********************************
Renvoit un chemin pour un fichier
quelquonque (texte, son...)
***********************************/

char *getPath(int pathParametre, char nom[TAILLE_MAX_NOMS]);
char *getPath(char *pathSpecial, char nom[TAILLE_MAX_NOMS]);

/***********************************
Définit des modes fréquents
***********************************/

namespace MODE
{
	const int LECTURE_SEULE = 1;
	const int ECRITURE_SEULE = 2;
	const int L_E_S = 3;//Lecture Ecriture Suppression
	const int L_E = 4;//Lecture Ecriture sans suppression
}

FILE *m_fichier;

class Fichier
{

	public:
		
		Fichier();//Constructeur
		~Fichier();//Destructeur
		
		bool ouvrirFichier(int mode, int path, char *nom);//Ouverture d'un fichier
		bool ouvrirFichier(char modeDefinit[4], char pathSpecial[TAILLE_MAX_NOMS], char *nom );//Ouverture d'un fichier
		void ecrireMessage(char message[TAILLE_MAX_MESSAGES]);//Ecriture d'un message à la suite d'un fichier
		void ecrireDate(int h, int m, int s);
		void fermerFichier();
		FILE* getFILE();//Retourne le pointeur fichier
		char* getNom();//Retourne le nom du fichier
	
	private:
		char m_nom[TAILLE_MAX_NOMS];
};

#endif